The processing of electronic transactions is an important aspect of many of today's businesses and organizations. An electronic transaction may include, for example, a financial transaction, such as a money transfer or withdrawal, a billing transaction, a database transaction, a shopping transaction, and so on.
According to the well established ACID (atomicity, consistency, isolation, durability) notions, when an electronic transaction is processed it must either be successfully completed or it must be successfully cancelled.
In the past, electronic transactions were typically stored over a period of time and processed as a batch using batch processing techniques. Batch processing systems typically use dedicated computer hardware, such as mainframe computing systems, in a private or secure network for processing electronic transactions. In many cases businesses may have high volumes of electronic transactions that need processing each day, and typically batch processing is performed overnight for cost and resource reasons. Batch processing therefore introduces what may be a substantial delay between the electronic transaction being created and the electronic transaction being processed and are lacking somewhat in flexibility.